Software application developers (herein referred to as developers and users) regularly need various hardware and software configurations to test their applications on. The hardware and software must be made available quick and under known and consistently built configurations. The developers need various computer systems with various operating systems, various application programs, and/or various drivers loaded on the computers (software and/or target operating environment is herein used to refer to operating systems, application programs, drivers and combinations thereof).
In some instances, developers may purchase hardware and software for their individual testing needs. The developers then install the software on the test hardware. However, this regularly results in a multiplicity of costs and a high likelihood for inconsistently configured hardware.
Alternatively, organizations may centralize the hardware and software into computer labs that are administered by lab administrators. Centralization conserves resources such as computers, software, office space, and the like. The lab administrators configure and provide the requested test configurations to the software application developers. For example, an application developer may need to test his/her application on a Windows NT system with service pack 6 against a midtier machine set up on Solaris with Oracle 9iAS v2.0.4 and against a database machine set up with Oracle 8.1.7 on patchset 2. Provisioning of such hardware configured with the software should be quick and predictable.
Typically, software installation is done by hand using the operating system and/or application program vendor's install procedures. Such method can take hours or even days to complete depending upon the number of machines, the operating systems, and the application programs. This method also requires a high degree of knowledge, skill and training, otherwise risking inconsistently setup hardware.
Alternatively, a backup, made to tape or other media, of an operating system install and/or application install may be utilized to setup computers. However, the method also requires a high degree of knowledge, skill and training. Furthermore, although typically faster then the above install method, restoring the computers is also time consuming.